centos7.5 内核崩溃

问题描述

公司一台dell服务器(dell 2950)在正常运行后突然出现系统内容崩溃,开机启动加载centos7.5后出现如下图:

思考

出现此类问题后,第一时间马上整理宕机后的问题:

  1. 业务影响范围?
  2. 什么原因导致的?
  3. 如何修复系统?

带着问题去解决

  1. 业务影响范围

    根据第一时间的了解和公司业务信息查阅,此服务器只影响公司人员正常使用文档库,系统宕机在周五晚上,公司人员在休息中使用较少,所以影响范围不大,但是里面数据集成了公司日常的工作内容,需要加急处理。

  2. 什么原因导致的

    服务器在此前迁移时有一次意外停机,通过人工启动后一直运行正常,但是最近有出现SSH服务连接异常(ICMP测试没问题),对外提供的服务也正常运行,通过宿主机连接查看系统日志无异常行为,所以修复优先级排后,后来发现问题原因基本是因此次意外宕机造成的。

  3. 如何修复系统

    在修复前准备工作中,考虑了几个修复方案:光盘修复工具、raid修复系统、系统盘挂载至其他服务器上修复并copy数据、U盘可读写方式进入系统挂载并copy数据,如果修复比较困难,应立即做好数据迁移准备:准备新环境(由于文档库的附件资料存在服务器中,内容信息存在数据库中(数据和附件不在同一台服务器上),所以重点考虑附件的恢复)。

    • 光盘镜像修复工具

      通过光盘镜像挂载选择系统急救模式进入系统后发现init丢失,lib库及命令也同样丢失,通过自行尝试修复及网上资料查阅也无济于事。可见问题已经难以解决,所以,应当采取第二个措施,数据的copy及新环境的准备(光盘镜像中挂载U盘需要安装驱动,安装失败,放弃)。

    • raid修复系统

      此服务器做的是raid1,在raid配置中尝试修复,没有成功,放弃。

    • 挂载至其他服务器上

      系统盘挂载其他服务器上,不识别,放弃。

    • U盘启动COPY数据

      通过U盘启动并进入系统急救模式,参照提示切换至系统(chroot /mnt/images),查看源数据无损坏,并挂载U盘(成功),进行数据的copy并迁移至新环境中,成功。

总结

前前后后折腾了一天时间,好歹问题出在放假途中,对员工使用影响很少,有大量的时间去查阅问题资料,造成这种问题的主要原因有几个:

  1. 系统单点没做好冗余;
  2. 数据的存储没做好备份或者进行分布式存储策略;
  3. 当问题已经开始有不好的预兆时应及时处理。